home *** CD-ROM | disk | FTP | other *** search
- From shirley@gothamcity.jsc.nasa.gov Thu Sep 17 10:24:28 1992
- Return-Path: <shirley@gothamcity.jsc.nasa.gov>
- Received: from albert.gnu.ai.mit.edu by carrara.bos.marble.com (NX5.67c/Marble-3.0)
- id AA04684; Thu, 17 Sep 92 10:24:21 -0400
- Received: from life.ai.mit.edu by albert.gnu.ai.mit.edu (5.65/4.0) with SMTP
- id <AA13193@albert.gnu.ai.mit.edu>; Thu, 17 Sep 92 09:59:35 -0400
- Received: from ames.arc.nasa.gov by life.ai.mit.edu (4.1/AI-4.10) id AA13127; Thu, 17 Sep 92 09:59:31 EDT
- Received: from gothamcity.jsc.nasa.gov by ames.arc.nasa.gov with SMTP id AA14595
- (5.65c/IDA-1.4.4 for <gnu-objc@prep.ai.mit.edu>); Thu, 17 Sep 1992 06:59:28 -0700
- Received: from fdr.tech.lab by gothamcity.jsc.nasa.gov (4.1/SMI-4.1)
- id AA26868; Thu, 17 Sep 92 08:58:43 CDT
- Date: Thu, 17 Sep 92 08:58:43 CDT
- From: shirley@gothamcity.jsc.nasa.gov (Bill Shirley [CSC])
- Message-Id: <9209171358.AA26868@gothamcity.jsc.nasa.gov>
- To: gnu-objc@prep.ai.mit.edu
- Subject: Re: Automatic input/output, persistence
-
-
- I tried to send this easlier, but it bounced at the source. I hope
- I'm not repeating something you already got:
-
- ]] From shirley Fri Sep 11 13:47:30 1992
-
-
- |> From: gdb0@lehigh.edu (GLENN BLANK)
-
- I don't understand most of this, I may need more explaining to.
-
- |> A key difference between the NeXT and StepStone foundation class
- |> libraries is the latter supports a much more convenient scheme
- |> for storing objects to and reading them back from files.
-
- |> The NeXT version, as I understand it (I don't have a NeXT; I have
- |> a Sun running Stepstone's version), only supports what I would call
- |> "semi-automatic" input/output--that is, the implementor of each subclass
- |> must implement methods to archive objects of this subclass. The
-
- On NeXTs, the implementor must archive the instance variables
- (that he wants archived)
-
- |> Stepstone library does not require any new implementation at all. If
- |> your object is a subclass of Stepstone's Object, it automatically
- |> inherits Object's hooks automatic input/output--providing you
- |> explicitly link in the relevant code.
-
- What does this *mean*?
- "automatically... providing..."?
-
- What relevant code?
-
- |> Semi-automatic input/output is about all C++ libraries can do:
- |> since C++ does not support metaclass information at run-time.
- |> Automatic input/output is one of the very nice features of Smalltalk,
- |> which Objective-C can imitate, because it does support metaclasses,
- |> and so can know how to allocate instances of some class when it
- |> reads one from a file.
-
- What happens if I have modified the Class in the interim?
- (This is a problem that all implementations have to deal with,
- I am interested in how Stepstone does (or you (pl) would) in this case)
-
- |> Needless to say, automatic input/output
- |> can save a lot of work, especially in continually evolving
- |> applications like mine.
-
- By continually evolving, do you mean class implementations are changing?
-
- |> I'd sure like to see support for it in the
- |> GNU version, rather than settle for the NeXT interface.
-
- I'll wait to vote until I understand it :-)
-
- |> May I point out that automatic input/output also opens the door
- |> for object persistence. This need not imply a full blown OODB,
- |> with query capabilities, etc.
-
- What does "object persistence" mean? I'll have to plead ignorant
- on much DB theory.
-
- |> The StepStone implementation stores
- |> one whole object per file
-
- That does sound like a limitation
-
- |> --the object can be arbitrarily complex,
- |> e.g., the filer will handle vanilla C instance variables,
- |> chase object ids, yet avoid duplicating objects to which there
- |> is more than one pointer. A more flexible design might allow one
- |> to store/access many objects per file.
-
- like NIB files.
-
- What if an object creates a large amount of instance variables that it
- doesn't NEED to archive. (It could create this extra data for algorithmic
- efficiency, for example).
-
- (A string object may keep the number of characters,
- the size of the storage it allocated, the number of words, whether the
- characters are all numeric, alphabetic,..., but you would only NEED to
- archive the actual sequence of characters, the other information can
- be computed after the string is unarchived.)
-
- -Bill S.
-
-